1. Field of the Invention
Methods and apparatuses consistent with the present invention relate to information transmission in a server/client network system, and more particularly, to a method of transmitting information effectively in a server/client network and a server apparatus and a client apparatus using the method in order to minimize load without modification of a firewall or a network address translator, the load due to the simultaneous connection between a plurality of clients located behind the firewall and/or the network address translator, and a server which provides these clients with services.
2. Description of the Related Art
In systems where clients are connected to a server on a network over the Internet, network connection structures are becoming more and more complicated in terms of security or efficiency of the network. An asynchronous information transmission system in a typical server/client network environment will now be described with reference to FIG. 1.
The system in FIG. 1 includes a server 10, a client A 41, a client B 42, and a client C 43, and a firewall 20 or a network address translator (NAT) 30 may be selectively present on the client side. In a client-to-server connection through which information is transmitted from the client to the server, the connection is established from an IP address of the client B 42 and a port to an IP address of the server 10 and the port, whereas in a server-to-client connection through which information is transmitted from the server 10 to the client B 42, the connection is established from the IP address of the server 10 and the port to the IP address of the client B 42 and the port. The firewall 20 and the NAT 30 are set so as not to block transmission through the client to server connection and to act as if they did not exist in the system, and to selectively block transmission through the server to client connection. Specifically, in the case of the firewall 20, information transmission is generally blocked as long as the setting of the firewall 20 is not changed, and in the case of the NAT 30, in the course of transmitting an internal IP, which is assigned to the client B 42, to the server 10 after converting the internal IP into an external IP of the NAT 30, since the external IP of the NAT 30 connected to the server 10 and the internal IP of the client B 42 which is placed behind the NAT 30 differ from each other, the information can be transmitted to the client B 42 only if port forwarding is set properly.
As such, in the general server/client network environment, information transmission from a client to a server can be performed without any problem, but the information transmission from the server to the client may not be performed properly because of the block by a firewall. Thus, to overcome this inefficiency, generally, there may be two different asynchronous information transmission methods.
First, the above problem may be solved by changing or manipulating some settings of a firewall or of an NAT using previously well-known methods (for example, methods using UPnP gateway protocol or NAT traversal). In this case, it can be advantageous to use the general network protocol, but there can be difficulty in applying this method practically. This is because all methods of properly manipulating the firewall and the NAT should be made available and the client should be coded in order to respond to all situations which might occur according to these methods. Although these problems may be overcome, this method cannot solve complications in an environment where several firewalls and NAT are installed in an overlay fashion.
Second, a polling method may be used, in which a client-to-server connection is used to solve a problem of a server-to-client connection. In the polling method, a client periodically accesses a server to obtain necessary information, or if there is information which needs to be transmitted to the client, the server stores information temporarily and pushes the temporarily stored information to the client when the client accesses the server at an arranged time.
According to the polling method, when it is assumed that the polling interval of a client-to-server connection is 10 seconds and the number of clients which are online concurrently is 10,000, and when information is transmitted to on-line clients in response to the users remote control or information updating, the total number of occurrences of information transmission per hour is 1,000 on average, the polling efficiency (the total number of information transmission/the total number of accesses to the server) for the server is 1,000/3,6000,000=0.0002777 . . . , that is, 0.028%. In this case, to reduce the load, the polling interval may be extended, for example, when the polling interval is set to 10 minutes instead of 10 seconds, the polling efficiency is 1,000/60,000=0.0166 . . . , that is, approximately 1.67%. This polling efficiency is not high enough, and it may take a maximum 10 minutes for the updated information to be reflected.
In other words, according to the above method, since periodical access (from the clients to the server) is necessary even when a particular information transmission is not required, the number of clients which are online to access to the server is increasing, and thus a load of the server is also increasing regardless of the amount of information or events.